The present invention concerns printing information within a computing system and pertains particularly to a printer and printing driver which utilize adaptive object banding.
While of general use in the printing and display field, the present invention is especially useful in the field of computer driven printers particularly designed for producing engineering or other large drawings on paper, vellum, film or other print media which is drawn through the mechanism from a roll or from a manual or automatic sheet feed media path. Typically, the media may have a width from 81/2 inches to as much as 3 or 4 feet or more.
With reference to a rectangular coordinate system, the paper or other print media is drawn through the printer in the X direction and a thermal inkjet printer carriage is mounted for movement transversely of the paper in what shall be referred to as the Y direction. A sheet of paper or other print media is either manually fed or paper is drawn from a supply roll thereof around a platen roller which may or may not be power driven. When the printer apparatus employs a thermal inkjet printing head or heads, precise control of the spacing between the print heads and the surface of the print media on which printing is to take place is essential otherwise acceptable print resolution is lost.
Inkjet printers, such as those sold by Hewlett Packard Company which has a business address of 3000 Hanover Street, Palo Alto, Calif. 94304, offer substantial improvements in speed over the conventional X-Y plotter. Inkjet printers typically include a pen having an array of nozzles. The pens are mounted on a carriage which is moved across the page in successive swaths. Each inkjet pen has heater circuits which, when activated, cause ink to be ejected from associated nozzles. As the pen is positioned over a given location, a jet of ink is ejected from the nozzle to provide a pixel of ink at a desired location. The mosaic of pixels thus created provides a desired composite image.
Using printers for large print media introduces special problems. For example, when printing larger raster images a significant amount of printer memory may be required. If the printer does not have enough memory to print an image, some sort of error will occur.
More specifically, raster images are printed using rasterization. Rasterization is a process wherein graphics primitives (such as line drawing commands) are received by a printer and from these the printer generates a bitmap that corresponds to the graphical representation of the primitives.
High end printer devices use specialized software and hardware to perform rasterization. The specialized hardware typically includes a processor and an embedded real-time operating system. The rasterization of objects within the printer itself (referred to as "object mode" printing) generally provides excellent printing performance. However, complex drawings often involve large raster images. For large raster images, rasterization can require a significant amount of memory which may result in overrunning printer memory.
In order to avoid an "out-of-memory" error, some printer drivers use a "sleek" mode. For example, see the DesignJet model printers available from Hewlett-Packard Company. In sleek mode, the output is drawn up into a series of bands by the computing system before being sent to the printer. Thus the rasterization is not performed by the printer, but by a computing system connected to the printer. This computing system performs all graphic processing, usually breaking the original drawing into bands. Each band is rasterized and the resulting bit-mapped graphic for each band is sent to the printer for printing. While this is an effective work-around for printers with insufficient memory, the hardware processing power of the printer is wasted. Additionally, the performance of the printing when in sleek mode is closely related to the processing power and other resources of the computing system. The end result is generally a significant loss in overall performance, including an increase in total print time and longer delay in returning the user to the application calling the print driver.